package ejbs;

import interfaces.IUsuario;

import java.io.Serializable;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;


import beans.Usuario;

@Stateless
public class UsuarioEJB implements IUsuario, Serializable {
	

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@PersistenceContext(unitName = "ProjetoChamadaPU")
	private EntityManager em;
	
	@Override
	public void insert(Usuario u) {
		em.persist(u);
	}

	@Override
	public void delete(int id) {
		Usuario u;
		u = em.find(Usuario.class, id);
		em.remove(u);

	}

	@Override
	public Usuario select(int id) {
		Query qr = em.createNamedQuery("Usuario.findByIdusuario");
		qr.setParameter("idusuario", id);
		Usuario usuario = (Usuario) qr.getSingleResult();
		
		return usuario;
	}

	@Override
	public List<Usuario> SelectAll() {
		Query p = em.createNamedQuery("Usuario.findAll");
		List l =  p.getResultList();
		return l;
		
	}

	@Override
	public void update(Usuario u) {
		em.merge(u);	
	}

	@Override
	public Usuario getLogin(String login, String senha) {
		Query qr = em.createNamedQuery("Usuario.findLogin");  
		qr.setParameter("login", login);
		qr.setParameter("senha", senha);
		Usuario u = (Usuario) qr.getSingleResult();
		
		return u;
	}

	@Override
	public Usuario usuarioByLogin(String l) {
		Query qr = em.createNamedQuery("Usuario.findByLogin");
		qr.setParameter("login", l);
		Usuario u = (Usuario) qr.getSingleResult();
		return u;
	}

}
